package com.internetCafes.spms.web.customer.service.customer;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.internetCafes.spms.web.customer.entity.customer.CustomerFlow;
import com.internetCafes.spms.web.customer.model.customer.flow.CustomerFlowDo;
import com.internetCafes.spms.web.customer.model.customer.flow.CustomerFlowPo;

import java.util.List;

/**
 * <p>
 * 客户流转表 服务类
 * </p>
 *
 * @author Zj
 * @since 2021-10-20
 */
public interface ICustomerFlowService extends IService<CustomerFlow> {

    /**
     * 获取最近的
     *
     * @param customerIdList 客户id列表
     * @return 客户跟进列表
     */
    List<CustomerFlowPo> listTransferPoRecent(List<Long> customerIdList);

    /**
     * 获取客户列表
     *
     * @param customerFlowDo 请求参数
     * @return 客户操作列表
     */
    List<CustomerFlowPo> poList(CustomerFlowDo customerFlowDo);

    /**
     * 分页
     */
    Page<CustomerFlow> paging(IPage<CustomerFlow> page, Wrapper<CustomerFlow> queryWrapper);

    /**
     * 通过客户id列表删除
     *
     * @param customerIdList 客户id列表
     * @return true/false
     */
    boolean removeByCustomerIdList(List<Long> customerIdList);

    /**
     * 创建记录
     *
     * @param customerId       客户id
     * @param actionTag        操作标签 1-创建 2-跟进人变更 3-删除 4-转意向 5-转成交 6-意向移除 7-成交移除
     * @param originalUserId   原跟进人id
     * @param originalUserName 原更进人姓名
     * @param targetUserId     最终跟进人id
     * @param targetUserName   最终跟进人姓名
     * @return true/false
     */
    boolean add(Long customerId, Integer actionTag, Long originalUserId, String originalUserName, Long targetUserId, String targetUserName);


}
